#include "config.hpp"

Config *Config::_ptr=nullptr;
mutex Config::_mutex;
bool Config::ReadConfigFile()
{
    cloudBackup::FileUtil futil(configFile);
    string body;
    if(futil.GetContent(&body)==false)
    {
        cout<<__FILE__<<"-"<<__LINE__<<":"<<"error"<<endl;
        return false;
    }

    Json::Value root;
    if(cloudBackup::JsonUtil::UnSerialize(body,&root)==false)
    {
        cout<<__FILE__<<"-"<<__LINE__<<":"<<"error"<<endl;
        return false;
    }

    _hot_time=root["hot_time"].asInt();
    _server_port=root["server_port"].asInt();
    _server_ip=root["server_ip"].asString();
    _download_prefix=root["download_orefix"].asString();
    _packfile_suffix=root["packfile_suffix"].asString();
    _pack_dir=root["pack_dir"].asString();
    _back_dir=root["back_dir"].asString();
    _backup_file=root["backup_file"].asString();
    return true;
}

int Config::GetHotTime()
{
    return _hot_time;
}

int Config::GetServerPort()
{
    return _server_port;
}

string Config::GetServerIp()
{
    return _server_ip;
}

string Config::GetDownloadPrefix()
{
    return _download_prefix;
}

string Config::GetPackSuffix()
{
    return _packfile_suffix;
}

string Config::GetPackDir()
{
    return _pack_dir;
}

string Config::GetBackDir()
{
    return _back_dir;
}

string Config::GetBackupFile()
{
    return _backup_file;
}
